#ifndef __ABSTRACTION_HPP__
#define __ABSTRACTION_HPP__

#include <iostream>
using std::cout;
using std::endl;

class Abstraction {
public:
	virtual ~Abstraction() {cout<<__func__<<endl;}
	virtual void operation() = 0;

protected:
	Abstraction() {cout<<__func__<<endl;}
};
#endif /* end of include guard */
